From: Colin Walters Date: Mon, 30 Apr 2018 18:41:30 +0000 (-0400) Subject: deploy: Don't prune repo at finalization time by default X-Git-Tag: archive/raspbian/2022.1-3+rpi1~1^2~205^2^2~19 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=11c12cc19a2d9e75038b9ab7e57213fa63316abe;p=ostree.git deploy: Don't prune repo at finalization time by default Doing so can break rpm-ostree, which wants to own the cleanup process to ensure its baselayer refs are generated. Further, doing the cleanup at shutdown time adds latency. It's also going to be generally unnecessary as we expect repo pruning to have been done when writing the refs. Closes: #1567 Approved by: jlebon --- diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c index 4314520a..ea9dcb29 100644 --- a/src/libostree/ostree-sysroot-deploy.c +++ b/src/libostree/ostree-sysroot-deploy.c @@ -2799,13 +2799,23 @@ _ostree_sysroot_finalize_staged (OstreeSysroot *self, staged->staged = FALSE; g_ptr_array_remove_index (self->deployments, 0); - /* TODO: Proxy across flags too? */ - OstreeSysrootSimpleWriteDeploymentFlags flags = 0; + /* TODO: Proxy across flags too? + * + * But note that we always use NO_CLEAN to avoid adding more latency at + * shutdown, and also because e.g. rpm-ostree wants to own the cleanup + * process. + */ + OstreeSysrootSimpleWriteDeploymentFlags flags = + OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NO_CLEAN; if (!ostree_sysroot_simple_write_deployment (self, ostree_deployment_get_osname (staged), staged, merge_deployment, flags, cancellable, error)) return FALSE; + /* Do the basic cleanup that may impact /boot, but not the repo pruning */ + if (!ostree_sysroot_prepare_cleanup (self, cancellable, error)) + return FALSE; + return TRUE; }